function putdisp(x, y, rgb) {
//    var ctx = display.context;
//    ctx.fillStyle="#"+rgb.getColor();
//    alert(ctx.fillStyle);
//    ctx.fillRect(x,y,1,1);
    var idx = (x+y*display.xres)*4;
    display.imgdata.data[idx+0] = rgb.r;
    display.imgdata.data[idx+1] = rgb.g;
    display.imgdata.data[idx+2] = rgb.b;
    display.imgdata.data[idx+3] = 255;
};

function _get_display() {
    var canvas = document.getElementById("frame");
    var ctx = canvas.getContext("2d");
    display.context = ctx;
    display.xres = canvas.width;
    display.yres = canvas.height;
};

function loaddisp() {
    _get_display();
    display.imgdata = display.context.getImageData(0,0,display.xres,display.yres);
}

function getdisp(x, y) {
    var data = new Array();
    var idx = (x+y*display.xres)*4;
    data[0] = display.imgdata.data[idx];
    data[1] = display.imgdata.data[idx+1];
    data[2] = display.imgdata.data[idx+2];
    data[3] = display.imgdata.data[idx+3];
    return new rgbcolor(data[0], data[1], data[2], data[3]);
};

function initdisp() {
    _get_display();
    display.imgdata = display.context.createImageData(display.xres, display.yres);
    if(!display.bgcolor) {
	display.bgcolor = new rgbcolor(0, 0, 0, 255);
    }
    for(var i = 0; i < display.xres; ++i) {
	for(var j = 0; j < display.yres; ++j) {
	    putdisp(i, j, display.bgcolor);
	}
    }
    flushdisp();
};

function flushdisp() {
    display.context.putImageData(display.imgdata, 0,0);
}

//_get_display();
//initdisp();
//alert(render.context.getImageData(1,1,1,1).data[3]);
